package com.hwn.datax.service;



import com.hwn.datax.domain.RepositorySource;

import java.util.LinkedHashMap;
import java.util.List;

/**
 *
 */
public interface RepositorySourceService {


    /**
     * 获取全部的连接信息
     * @return
     */
    List<RepositorySource> list();
    /**
     * 保存数据连接
     * @param repositorySource
     */
    void save(RepositorySource repositorySource);


    /**
     * 测试连接是否正常
     * @param repositorySource
     * @return
     */
    Boolean testConnection(RepositorySource repositorySource);

    /**
     * 切换数据源
     *
     * @param key 数据库配置表主键
     */
    void changeDataSource(String key);

    /**
     * 获取数据库列表
     *
     * @param key 数据库配置表主键
     */
    List<LinkedHashMap<String, Object>> getSchemas(String key);

    /**
     * 获取数据库表
     *
     * @param key 数据库配置表主键
     */
    List<LinkedHashMap<String, Object>> getTables(String key,String schemaName);

    /**
     * 获取数据库表字段
     *
     * @param key 数据库配置表主键
     */
    List<LinkedHashMap<String, Object>> getColumns(String key,String schemaName, String tableName);

    /**
     * 获取数据库表主键
     * @param key
     * @param schemaName
     * @param tableName
     * @return
     */
    List<LinkedHashMap<String, Object>> getPrimaryKey(String key,String schemaName, String tableName);

    void remove(Long id);
}
